package pruefungsPlanung;
import einlesenUndDatenverwaltung.*;
import ausgabeUndDatenverwaltung.AusgabeListen;

/**
 * Die Klasse PruefungsPlanung ist die zentrale Rechenlogikklasse.
 * In dieser Klasse wird unter Beruecksichtigung bestimmter Vorbedingungen (insb. pro Student maximal drei Pruefungen pro Tag) ein Pruefungsplan ermittelt, der die Anzahl der Pruefungstage minimiert.
 *
 * @author (Hendrik Hertel) 
 * @version (12.12.2013)
 */
public class PruefungsPlanung {
	private boolean ausgabe;
    private KursListe kursliste;
    private StudentenListe studentenliste;
    private Student student;
    private Kurs kurs;

	/**
	 * Konstruktor zur Erzeugung der Objekte der Klasse PruefungsPlanung
	 */
	public PruefungsPlanung() {
		
	}
	
	/**
	 * Ermitteln des optimalen Pruefungsplans, der die Anzahl der Pruefungstage minimiert
	 *
	 * @param BuchungsListe, KursListe, StudentenListe
	 * @return ausgabe
	 */
	public boolean optimiere (BuchungsListe bl, KursListe kl, StudentenListe sl){
		
		return ausgabe;
		
	}
	
	 /**
     * Die Methode ermittelt die Studenten mit den meisten Kursen.
     * @param BuchungsListe
     * @return (Student)
     */
    public Student getStudentMitMaxKurse(BuchungsListe bl){
        //Aufruf der entsprechenden Methode aus BuchungsListe-> Verarbeiten der Ergebnisse
        return student;
      }
   
      /**
       * Die Methode ermittelt die Kurse mit den meisten anderen Studenten.
       * @param BuchungsListe
       * @return (Kurs)
       */
    public Kurs getKursMitMaxAnderenStudent(BuchungsListe bl){
        //Aufruf der entsprecheden Methode aus BuchungsListe-> Verarbeiten der Ergebnisse
        return kurs;
    }
	
}
